package com.wyp168.socket.udp.demo01;

import java.io.IOException;
import java.net.*;

/**
 * @ClassName Send
 * @Title TODO
 * @Description TODO
 * @Author wyp168
 * @Date 2022/10/29 02:19
 */

//发送端B
public class SendB {
    public static void main(String[] args) throws IOException {
        //1. 创建 datagramSocket 对象， 准备发送和接收数据
        //发送者B 准备在9998端口接收数据
        DatagramSocket socket = new DatagramSocket(9998);

        //2. 将需要发送的数据，封装到 DatagramPacket对象中
        byte[] bytes = "hello， 明天吃火锅".getBytes();
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 9999);
        //向 接受者A 发送数据
        socket.send(datagramPacket);

        //封装 DatagramPacket 对象，来接收 接收端A 回复的消息
        byte[] buf = new byte[1024];
        datagramPacket = new DatagramPacket(buf, buf.length);
        // 通过网络传输将DatagramPacket对象 填充到packet 实例中
        // 如果没有数据报发送到 本机的9999端口，程序则会在此等待接收数据
        socket.receive(datagramPacket);
        //打印消息
        System.out.println(new String(datagramPacket.getData(), 0, datagramPacket.getLength()));
        //关闭资源
        socket.close();

    }
}
